[CI] Build the chip-cert-bins docker image used by the TH using github actions#72724
[CI] Build the chip-cert-bins docker image used by the TH using github actions#72724greens wants to merge 1 commit into
Conversation
…ions Uses a hybrid model where the various apps are each built first on their own machine, then those uploaded artifacts are copied to a final step which uses a modified Docker file to copy the files into the final image from the build context.
|
Re-opened now that I solved the missing python dependencies issue. |
There was a problem hiding this comment.
Code Review
This pull request introduces a new Dockerfile (Dockerfile-ci) and a targets configuration file (targets.json) to set up a minimal Ubuntu-based CI environment for Matter certification binaries. Feedback on the Dockerfile highlights two key improvements: replacing the inefficient and error-prone pip install command with a standard requirements.txt or virtual environment approach, and adding /root/apps to the system PATH instead of creating symbolic links in the root directory for cleaner execution.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #72724 +/- ##
==========================================
+ Coverage 56.07% 56.86% +0.79%
==========================================
Files 1640 1639 -1
Lines 112563 112757 +194
Branches 13349 13123 -226
==========================================
+ Hits 63115 64119 +1004
+ Misses 49448 48638 -810 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
PR #72724: Size comparison from f8ed35e to be50aad Full report (33 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
|
Summary
Aims to speed up creating of the chip-cert-bins image used by the test harness. (Current Dockerfile is this one: https://github.com/project-chip/connectedhomeip/blob/master/integrations/docker/images/chip-cert-bins/Dockerfile) Thanks to the parallelization, build times are about ~30 minutes, as opposed to 4 hours otherwise. With ccache, build times are about 7 minutes.
Uses a hybrid model where the various apps are each built first on their own machine, then those uploaded artifacts are copied to a final step which uses a modified Docker file to copy the files into the final image from the build context.
Testing
I downloaded and ran the image (emulated) locally against my test harness during dev. All images were created/uploaded against my fork, so permissions issues may arise here. Dev versions of the image can be found here: https://github.com/greens/connectedhomeip/pkgs/container/chip-cert-bins/versions
Possible future work
Build images are currently built here: https://github.com/project-chip/connectedhomeip/blob/master/.github/workflows/docker_img.yaml , which could easily be extended to also create an arm64 build image (as the cross-compilation image results in some apps needing to be built with clang). That way the tags could match the scheme used for the current build images, and the step could be removed here.
This file could also be extended to offer similar cache management inputs to the various test builds.